package cate.common.table.farm.island.sheet;

import cate.common.table.ESheet;
import cate.common.table.d.GDCamp;
import cate.common.table.d.GDIsland;
import cate.common.table.farm.island.row.IslandAidHeroRow;
import cate.common.util.random.RWList;
import cate.common.util.random.SimpleRwItem;

import java.util.ArrayList;
import java.util.List;

public class IslandAidHeroSheet extends ESheet<IslandAidHeroRow> {
    @Override
    public String getSheetName() {
        return "迷失神庙雇佣英雄";
    }


    public List<IslandAidHeroRow> randomAllCamps(){
        List<Byte> camps = new ArrayList<>();
        for(byte camp : GDCamp.Type.getAllCamps(false)){
            camps.add(camp);
        }
        return randomByCamps(camps);
    }


    public List<IslandAidHeroRow> randomByCamps(List<Byte> camps){
        List<IslandAidHeroRow> aidHeros = new ArrayList<>();
        for (int i = 0; i < GDIsland.AID_HERO_NUM; i++) {
            RWList<SimpleRwItem> rwList = new RWList<>();
            for (IslandAidHeroRow row : this.getList()) {
                if (!aidHeros.contains(row) && camps.contains(row.camp)) {
                    rwList.add(new SimpleRwItem(row.id, row.weight));
                }
            }
            rwList.setup();
            SimpleRwItem simpleRwItem = rwList.get();
            if(simpleRwItem!=null){
                IslandAidHeroRow islandAidHeroRow = get(simpleRwItem.getId());
                if(islandAidHeroRow!=null){
                    aidHeros.add(islandAidHeroRow);
                }
            }
        }
        return aidHeros;
    }


}
